/*
* @Author: apple
* @Date:   2017-01-13 16:52:31
* @Last Modified by:   apple
* @Last Modified time: 2017-01-13 17:02:13
*/

// 导入koa，和koa 1.x不同，在koa2中，我们导入的是一个class，因此用大写的Koa表示:
const Koa = require('koa');

// 注意require('koa-router')返回的是函数:
const router = require('koa-router')();

const bodyParser = require('koa-bodyparser');
// 创建一个Koa对象表示web app本身:
const app = new Koa();

const nunjucks = require('nunjucks');

nunjucks.configure('views', {
    autoescape: true
});

// 对于任何请求，app将调用该异步函数处理请求：
// log request URL:
app.use(async (ctx, next) => {
    console.log(`Process ${ctx.request.method} ${ctx.request.url}...`);
    await next();
});

// add url-route:
router.get('/hello/:name', async (ctx, next) => {
    var name = ctx.params.name;
    //ctx.response.body = `<h1>Hello, ${name}!</h1>`;
    ctx.body = nunjucks.render('hello.html', { name: 'bar' });
});

app.use(bodyParser());

// add router middleware:
app.use(router.routes());



// 在端口3000监听:
app.listen(3000);
console.log('app started at port 3000...');

